﻿#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>
#include <QMenu>
#include <QAction>

#include "ui_MainWindow.h"

#include "RegistrationAlgorithm.h"

namespace Core {

	class MainWindow : public QMainWindow
	{
		Q_OBJECT

	public:
		explicit MainWindow(QWidget *parent = Q_NULLPTR);
		~MainWindow();

		/**
		 * @brief	initAll 初始化所有
		 * @return 
		 */
		void initAll();

	private Q_SLOTS:
		/**
		 * @brief	slotRegisterActionTriggered 显示注册界面
		 * @return 
		 */
		void slotRegisterActionTriggered();
		
		/**
		 * @brief	slotCreateRegisterCodeBtnClicked 创建注册码按钮
		 * @return 
		 */
		void slotCreateRegisterCodeBtnClicked();

		/**
		 * @brief	slotForverCheckBoxClicked
		 * @param	checked
		 * @return 
		 */
		void slotForverCheckBoxClicked(bool checked);
	
	private:
		/**
		 * @brief	initMenu 初始化菜单栏
		 * @return 
		 */
		void initMenu();

		/**
		 * @brief	initWidget 初始化窗口		
		 * @return 
		 */
		void initWidget();

	private:
		Ui::MainWindowClass ui;
		QMenu * m_pMenuTest;									// 测试菜单
		QAction * m_pActionRegister;							// 测试注册按钮

		QMenu * m_pMenuHelp;									// 帮助菜单

		RegistrationAlgorithm * m_pRegistrationAlgorithm;		// 注册算法
	};

}//namespace Core 

#endif // MAINWINDOW_H